package com.chenli.yinlianpay;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.unionpay.UPPayAssistEx;
import com.unionpay.uppay.PayActivity;

import qiu.niorgai.StatusBarCompat;

public class MainActivity extends Activity implements View.OnClickListener {

    /*****************************************************************
     * mMode参数解释： "00" - 启动银联正式环境 "01" - 连接银联测试环境
     *****************************************************************/
    private final String mMode = "01";
    private Button bt;
    private Button btnWebview;
    private Button btnWebview2;
    private static final String TN_URL_01 = "http://101.231.204.84:8091/sim/getacptn";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        StatusBarCompat.setStatusBarColor(this, getResources().getColor(R.color.colorAccent));
        initView();
    }

    private void initView() {
        bt = (Button) findViewById(R.id.bt);
        btnWebview = (Button) findViewById(R.id.btn_webview);
        btnWebview2 = (Button) findViewById(R.id.btn_webview2);
        bt.setOnClickListener(this);
        btnWebview.setOnClickListener(this);
        btnWebview2.setOnClickListener(this);
    }


    //    回调
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        /*************************************************
         * 步骤3：处理银联手机支付控件返回的支付结果
         ************************************************/
        if (data == null) {
            return;
        }
        String msg = "";
        /*
         * 支付控件返回字符串:success、fail、cancel 分别代表支付成功，支付失败，支付取消
         */
        String str = data.getExtras().getString("pay_result");
        if (str.equalsIgnoreCase("success")) {
            // 支付成功后，extra中如果存在result_data，取出校验
            // result_data结构见c）result_data参数说明
            if (data.hasExtra("result_data")) {
                String result = data.getExtras().getString("result_data");
                //                try {
                //                    JSONObject resultJson = new JSONObject(result);
                //                    String sign = resultJson.getString("sign");
                //                    String dataOrg = resultJson.getString("data");
                //                    // 验签证书同后台验签证书
                //                    // 此处的verify，商户需送去商户后台做验签
                //                    boolean ret = verify(dataOrg, sign, mMode);
                //                    if (ret) {
                //                        // 验证通过后，显示支付结果
                //                        msg = "支付成功！";
                //                    } else {
                //                        // 验证不通过后的处理
                //                        // 建议通过商户后台查询支付结果
                //               msg = "支付失败！";
                //                    }
                //                } catch (JSONException e) {
                //                }
                //            } else {
                // 未收到签名信息
                // 建议通过商户后台查询支付结果
                //               msg = "支付成功！";
                //            }
                msg = "支付成功！";
            } else if (str.equalsIgnoreCase("fail")) {
                msg = "支付失败！";
            } else if (str.equalsIgnoreCase("cancel")) {
                msg = "用户取消了支付";
            }

            Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
            System.out.println("支付结果通知"+msg);

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("支付结果通知");
            builder.setMessage(msg);
            builder.setInverseBackgroundForced(true);
            // builder.setCustomTitle();
            builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            builder.create().show();
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bt:
                /*************************************************
                 * 步骤2：通过银联工具类启动支付插件
                 ************************************************/
                UPPayAssistEx.startPayByJAR(this, PayActivity.class, null, null,
                        "828400782099411758601", mMode);
                break;
            case R.id.btn_webview:
                Intent intent=new Intent(this,WebviewActivity.class);
                startActivity(intent);
                break;
            case R.id.btn_webview2:
                Intent intent2=new Intent(this,MyWebViewActivity.class);
                startActivity(intent2);
                break;
        }

    }
}
